@use "sass:list";
@use '../helpers/baseMixin.scss';

.vxe-split {
  width: 100%;
  &.is--vertical {
    & > .vxe-split-wrapper {
      flex-direction: column;
      & > .vxe-split-pane {
        width: 100%;
      }
    }
  }
  &.is--drag {
    user-select: none;
    & > .vxe-split-wrapper {
      & > .vxe-split-pane {
        & > .vxe-split-pane--wrapper {
          &::after {
            content: "";
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            z-index: 1;
            background: transparent;
          }
        }
      }
    } 
  }
}
.vxe-split-wrapper {
  height: 100%;
  display: flex;
  flex-direction: row;
  overflow: auto;
}

.vxe-split-slots {
  display: none;
}

.vxe-split-pane-handle {
  position: relative;
  flex-shrink: 0;
  user-select: none;
}

.vxe-split-pane--wrapper {
  position: relative;
  word-break: break-word;
  overflow: hidden;
  flex-grow: 1;
}
.vxe-split-pane--inner {
  height: 100%;
  width: 100%;
  overflow: auto;
  & > .vxe-split {
    height: 100%;
  }
}
.vxe-split-pane-handle-bar {
  background-color: var(--vxe-split-handle-bar-background-color);
}
.vxe-split-pane-action-btn {
  display: block;
  position: absolute;
  z-index: 2;
  cursor: pointer;
  background-color: var(--vxe-ui-layout-background-color);
  border: 1px solid var(--vxe-ui-input-border-color);
  @include baseMixin.createAnimationTransition(transform, 0.1s);
  &:hover {
    color: var(--vxe-ui-layout-background-color);
    background-color: var(--vxe-ui-font-primary-lighten-color);
  }
}

.vxe-split-pane {
  display: flex;
  position: relative;
  overflow: hidden;
  &.is--hidden {
    width: 0;
  }
  &.is--padding {
    & > .vxe-split-pane--wrapper {
      padding: var(--vxe-ui-layout-padding-default);
    }
  }
  &.is--fill {
    flex-grow: 1;
  }
  &.is--width, 
  &.is--height {
    flex-shrink: 0;
  }
  &.is--border {
    & > .vxe-split-pane--wrapper,
    & > .vxe-split-pane-handle {
      border: 1px solid var(--vxe-ui-base-popup-border-color);
    }
  }
  &.is--resize {
    &.is--expand {
      &.is--horizontal {
        & > .vxe-split-pane-handle {
          .vxe-split-pane-handle-bar {
            cursor: w-resize;
          }
        }
      }
      &.is--vertical {
        & > .vxe-split-pane-handle {
          .vxe-split-pane-handle-bar {
            cursor: n-resize;
          }
        }
      }
      & > .vxe-split-pane-handle {
        & > .vxe-split-pane-handle-bar {
          background-color: var(--vxe-split-handle-bar-background-color);
          &:hover {
            background-color: var(--vxe-ui-font-primary-lighten-color);
          }
          &:active {
            background-color: var(--vxe-ui-font-primary-darken-color);
          }
        }
      }
    }
  }
  &.is--horizontal {
    flex-direction: row;
    & > .vxe-split-pane-handle {
      &.to--prev {
        .vxe-split-pane-action-btn {
          left: 0;
        }
      }
      &.to--next {
        .vxe-split-pane-action-btn {
          right: 0;
        }
      }
      .vxe-split-pane-handle-bar {
        width: var(--vxe-split-handle-bar-width);
        height: 100%;
      }
      .vxe-split-pane-action-btn {
        top: 50%;
        transform: translateY(-50%);
        padding: 1em 0;
        &:active {
          transform: translateY(-50%) scale(0.9);
        }
      }
    }
    &.is--border {
      & > .vxe-split-pane-handle {
        border-width: 1px 0 1px 0;
      }
    }
  }
  &.is--vertical {
    flex-direction: column;
    & > .vxe-split-pane-handle {
      &.to--prev {
        .vxe-split-pane-action-btn {
          top: 0;
        }
      }
      &.to--next {
        .vxe-split-pane-action-btn {
          bottom: 0;
        }
      }
      .vxe-split-pane-handle-bar {
        height: var(--vxe-split-handle-bar-height);
        width: 100%;
      }
      .vxe-split-pane-action-btn {
        left: 50%;
        transform: translateX(-50%);
        padding: 0 1em;
        &:active {
          transform: translateX(-50%) scale(0.9);
        }
      }
    }
    &.is--border {
      & > .vxe-split-pane-handle {
        border-width: 0 1px 0 1px;
      }
    }
  }
}

.vxe-modal--content {
  & > .vxe-split {
    height: 100%;
  }
}